package mbp.base;

/**
 * Klasa pomocnicza do przechowywania referencji do obiektow wraz z wertoscia skalarna
 * odnoszaca sie do tego obiektu. Nadpisuje metode compareTo() w celu umozliwienia
 * sortowania referencji do obiektow wzgledem wartosci skalarnej
 * @author Wojciech Wilanski
 *
 */
public class ObjectValue<T> implements Comparable<ObjectValue<?>>
{
	public T object;
	public Float value;
	
	public ObjectValue(T object, Float value)
	{
		this.object = object;
		this.value = value;
	}

	@Override
	public int compareTo(ObjectValue<?> o) 
	{
		final int BEFORE = 1;
	    final int EQUAL = 0;
	    final int AFTER = -1;
	    
	    if(this.value == o.value) return EQUAL;
	    
	    if(this.value < o.value) return BEFORE;
	    
	    if(this.value > o.value) return AFTER;
	    
	    return EQUAL;
	}
	

}
